﻿using Abp.Domain.Entities.Auditing;
using Camc.Quality.RecordTable.FormClass;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Camc.Quality.RecordTable.FormBase
{
    public class TableBase : FullAuditedEntity<Guid>
    {

        #region 基础元素
        /// <summary>
        /// 表名
        /// </summary>
        public virtual string FormName { get; protected set; }
        /// <summary>
        /// 序号
        /// </summary>
        public virtual int SerialNum { get; protected set; }
        /// <summary>
        /// 工步ID
        /// </summary>
        public virtual Guid WorkStepEntityId { get; protected set; }
        /// <summary>
        /// 工序ID
        /// </summary>
        public virtual Guid ProcessesEntityId { get; protected set; }
        /// <summary>
        /// 排序
        /// </summary>
        public virtual int Sort { get; protected set; }
        /// <summary>
        /// 部门
        /// </summary>
        public virtual string Deptment { get; protected set; }
        /// <summary>
        /// 现场备注
        /// </summary>
        public virtual string RecordRemark { get; protected set; }
        /// <summary>
        /// 检测签署
        /// </summary>
        public InspectionSignatureEntity InspectionSignature {  get;  set; }
        /// <summary>
        /// 记录要求
        /// </summary>
        public RecordRequirementsEntity RecordRequirements { get;  set; }
        /// <summary>
        /// 多媒体
        /// </summary>
        public MultiMediaEntity MultiMedia { get;  set; }
        /// <summary>
        /// 实测结果表
        /// </summary>
        public MeasuredResultEntity MeasuredResult { get;  set; }
        /// <summary>
        /// 环境要素
        /// </summary>
        public EnvironmentEntity Environment { get;  set; }


        #endregion

        #region A2所属部段图号
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string ParentProductNum { get; protected set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string ParentProductNum_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParentProductNum_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParentProductNum_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParentProductNum_Property { get; protected set; } = 0;
        #endregion

        #region A3所属部段名称
        /// <summary>
        /// 部段名称值
        /// </summary>
        public virtual string ParentProductName { get; protected set; }
        /// <summary>
        /// 部段列名
        /// </summary>
        public virtual string ParentProductName_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParentProductName_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParentProductName_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParentProductName_Property { get; protected set; } = 0;
        #endregion

        #region A4零件1图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string FisrtDrawingNum { get; protected set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string FisrtDrawingNum_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FisrtDrawingNum_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FisrtDrawingNum_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FisrtDrawingNum_Property { get; protected set; } = 0;
        #endregion

        #region A5零件1名称
        /// <summary>
        /// 零件1名称值
        /// </summary>
        public virtual string FirstDrawingName { get; protected set; }
        /// <summary>
        /// 零件1名称列名
        /// </summary>
        public virtual string FirstDrawingName_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstDrawingName_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstDrawingName_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstDrawingName_Property { get; protected set; } = 0;
        #endregion

        #region A6零件2图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string SecondDrawingNum { get; protected set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string SecondDrawingNum_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondDrawingNum_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondDrawingNum_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondDrawingNum_Property { get; protected set; } = 0;
        #endregion

        #region A7零件2名称
        /// <summary>
        /// 名称值
        /// </summary>
        public virtual string SecondDrawingName { get; protected set; }
        /// <summary>
        /// 名称列名
        /// </summary>
        public virtual string SecondDrawingName_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondDrawingName_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondDrawingName_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondDrawingName_Property { get; protected set; } = 0;
        #endregion

        #region A8产品编号
        /// <summary>
        /// 产品编号值
        /// </summary>
        public virtual string ProductNum { get; protected set; }
        /// <summary>
        /// 产品编号列名
        /// </summary>
        public virtual string ProductNum_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ProductNum_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ProductNum_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ProductNum_Property { get; protected set; } = 0;
        #endregion

        #region A9所属型号
        /// <summary>
        /// 所属型号值
        /// </summary>
        public virtual string Model { get; protected set; }
        /// <summary>
        /// 所属型号列名
        /// </summary>
        public virtual string Model_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Model_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Model_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Model_Property { get; protected set; } = 0;
        #endregion

        #region A10记录项目
        /// <summary>
        /// 记录项目值
        /// </summary>
        public virtual string RecordElement { get; protected set; }
        /// <summary>
        /// 记录项目列名
        /// </summary>
        public virtual string RecordElement_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool RecordElement_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool RecordElement_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordElement_Property { get; protected set; } = 0;
        #endregion

        #region A11记录元素
        /// <summary>
        /// 记录元素值
        /// </summary>
        public virtual string RecordItem { get; protected set; }
        /// <summary>
        /// 记录元素列名
        /// </summary>
        public virtual string RecordItem_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool RecordItem_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool RecordItem_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordItem_Property { get; protected set; } = 0;
        #endregion

        #region A12所用工具编号
        /// <summary>
        /// 所用工具编号值
        /// </summary>
        public virtual string ToolUsed { get; protected set; }
        /// <summary>
        /// 所用工具编号列名
        /// </summary>
        public virtual string ToolUsed_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ToolUsed_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ToolUsed_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ToolUsed_Property { get; protected set; } = 0;
        #endregion

        #region A13现场异常记录
        /// <summary>
        /// 现场异常记录值
        /// </summary>
        public virtual string AbnormalRecord { get; protected set; }
        /// <summary>
        /// 现场异常记录列名
        /// </summary>
        public virtual string AbnormalRecord_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool AbnormalRecord_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool AbnormalRecord_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int AbnormalRecord_Property { get; protected set; } = 0;
        #endregion

        #region A14合格证号
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string Certificate { get; protected set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string Certificate_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Certificate_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Certificate_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Certificate_Property { get; protected set; } = 0;
        #endregion

        #region A15所用工具编号2
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string SecondToolUsed { get; protected set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string SecondToolUsed_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondToolUsed_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondToolUsed_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondToolUsed_Property { get; protected set; } = 0;
        #endregion

        #region A16所用工具编号3
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string ThirdToolUsed { get; protected set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string ThirdToolUsed_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdToolUsed_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdToolUsed_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdToolUsed_Property { get; protected set; } = 0;
        #endregion

        #region A17 参数代号
        /// <summary>
        ///  参数代号
        /// </summary>
        public virtual string ParamCode { get; protected set; }

        /// <summary>
        /// 参数代号列名
        /// </summary>
        public virtual string ParamCode_DisplayName { get; protected set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParamCode_Enable { get; protected set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParamCode_Show { get; protected set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParamCode_Property { get; protected set; } = 0;
        #endregion
    }
}
